﻿Public Class xtf_LISTADOventa_

    Public Overrides Sub IniciarLista()
        Try
            gdc_general.BeginUpdate()
            gdc_general.DataSource = dtt_DataTable
            'ulg_Lista.DisplayLayout.GroupByBox.Style = Infragistics.Win.UltraWinGrid.GroupByBoxStyle.Full

            'Creacion y carga de Cuentas
            dtt_DataTable.Columns.Add("Identificador (ID)")
            dtt_DataTable.Columns.Add("Tipo de Documento")
            dtt_DataTable.Columns.Add("Tipo")
            dtt_DataTable.Columns.Add("Número")
            dtt_DataTable.Columns.Add("Fecha")
            dtt_DataTable.Columns.Add("Razón Social")
            dtt_DataTable.Columns.Add("Dirección")
            dtt_DataTable.Columns.Add("Localidad")
            dtt_DataTable.Columns.Add("Teléfono1")
            dtt_DataTable.Columns.Add("Teléfono2")
            dtt_DataTable.Columns.Add("Total", GetType(Decimal))
            dtt_DataTable.Columns.Add("Transportista", GetType(String))

            gdv_general.PopulateColumns(dtt_DataTable)


            gdv_general.Columns("Total").DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric
            gdv_general.Columns("Total").DisplayFormat.FormatString = "n" & int_cantdecimales
            gdv_general.Columns("Total").AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far
            gdv_general.Columns("Total").AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far

            Dim obj_documento_ As New cls_documento_
            If obj_documento_.CargarXtipodocumento(cls_documento_.enu_tipodocumento.Venta, ObtenerRegistroEstado()) Then
                For Each documento As cls_documento_ In obj_documento_.Items
                    AgregarItem(documento)
                Next
            End If
            'ulg_Lista.DataBind()

            FiltrarColumnas()
            gdc_general.EndUpdate()
        Catch ex As Exception
            'Dim frmError As New frm_ErrorManager(ex.Message)
        End Try
    End Sub

    Public Function AgregarItem(ByRef documento As cls_documento_) As DataRow
        Dim Row As DataRow = dtt_DataTable.NewRow

        Row("Identificador (ID)") = documento.iddocumento
        Row("Tipo de Documento") = EnumDescription(documento.tipodocumento)
        Row("Tipo") = EnumDescription(documento.tipo)
        Row("Número") = Format(documento.numero, "0000000000")
        Row("Fecha") = documento.fecha.ToShortDateString
        Row("Razón Social") = documento.razonsocial
        If Not IsNothing(documento.tercero.direccionprimario) Then
            Row("Dirección") = documento.tercero.direccionprimario.ToString
            If Not IsNothing(documento.tercero.direccionprimario.localidad) Then
                Row("Localidad") = documento.tercero.direccionprimario.localidad.ToString
            End If
        End If
        If Not IsNothing(documento.tercero.telefono_) Then
            If Not IsNothing(documento.tercero.telefono_.Items) Then
                If Not IsNothing(documento.tercero.telefono_.Items(0)) Then
                    Row("Teléfono1") = documento.tercero.telefono_.Items(0).ToString
                    If documento.tercero.telefono_.Items.Count > 1 Then
                        Row("Teléfono2") = documento.tercero.telefono_.Items(1).ToString
                    End If
                End If
            End If
        End If
        Dim total As Decimal
        documento.Totales(0, 0, 0, 0, total)
        Row("Total") = total
        If Not IsNothing(documento.transporte) Then
            Row("Transportista") = documento.transporte.ToString
        End If


        dtt_DataTable.Rows.Add(Row)
        'ulg_Lista.Rows(ulg_Lista.Rows.Count - 1).Height = 19
        Return Row
    End Function

    Public Sub ModificarItem(ByRef documento As cls_documento_, ByRef ulg_row As DataRow)
        ulg_row("Identificador (ID)") = documento.iddocumento
        ulg_row("Tipo de Documento") = EnumDescription(documento.tipodocumento)
        ulg_row("Tipo") = EnumDescription(documento.tipo)
        ulg_row("Número") = Format(documento.numero, "0000000000")
        ulg_row("Fecha") = documento.fecha.ToShortDateString
        ulg_row("Razón Social") = documento.razonsocial
        If Not IsNothing(documento.tercero.direccionprimario) Then
            ulg_row("Dirección") = documento.tercero.direccionprimario.ToString
            If Not IsNothing(documento.tercero.direccionprimario.localidad) Then
                ulg_row("Localidad") = documento.tercero.direccionprimario.localidad.ToString
            End If
        End If
        If Not IsNothing(documento.tercero.telefono_) Then
            If Not IsNothing(documento.tercero.telefono_.Items) Then
                If Not IsNothing(documento.tercero.telefono_.Items(0)) Then
                    ulg_row("Teléfono1") = documento.tercero.telefono_.Items(0).ToString
                    If documento.tercero.telefono_.Items.Count > 1 Then
                        ulg_row("Teléfono2") = documento.tercero.telefono_.Items(1).ToString
                    End If
                End If
            End If
        End If
        Dim total As Decimal
        documento.Totales(0, 0, 0, 0, total)
        ulg_row("Total") = total
        If Not IsNothing(documento.transporte) Then
            ulg_row("Transportista") = documento.transporte.ToString
        End If
    End Sub

    Public Sub New()

        Me.Cursor = Cursors.WaitCursor
        InitializeComponent()
        PERMISONuevo = "004010002"
        PERMISOModificar = "004010003"
        PERMISOEliminar = "004010004"
        PERMISOImprimir = "004010005"
        Me.Text = lbl_modulo.Text : lbl_modulodescripcion.Text = "Listado de " & lbl_modulo.Text & "."
        IniciarLista()
        Me.Cursor = Cursors.Default

    End Sub

    Public Overrides Sub bbi_Nuevo_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
        If ComprobarPermiso(PERMISONuevo) Then
            bsi_estado.Caption = "Cargando..."
            Application.DoEvents()
            Dim ABM As Object
            ABM = CType(Activator.CreateInstance(Type.GetType(Replace(Application.ProductName, " ", "_") & "." & Strings.Left(Replace(Me.Name, "xtf_LISTADO", "xtf_ABM"), Replace(Me.Name, "xtf_LISTADO", "xtf_ABM").Length - 1), True, True)), Form)
            ABM.Nuevo(Me)
            ABM.ControlarModificaciones(ABM.lac_general.items)
            bsi_estado.Caption = "Listo"
        End If
        Strings.Left(Replace(Me.Name, "xtf_LISTADO", "xtf_ABM"), Replace(Me.Name, "xtf_LISTADO", "xtf_ABM").Length - 2)
    End Sub

    Public Overrides Sub bbi_Modificar_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
        If ComprobarPermiso(PERMISOModificar) Then
            Try
                Dim barrio As Object 'New cls_barrio_
                barrio = New cls_documento_
                If gdv_general.SelectedRowsCount > 0 Then
                    If barrio.Buscar(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)")) Then
                        bsi_estado.Caption = "Cargando..."
                        Application.DoEvents()
                        Dim ABM As Object 'New xtf_ABMbarrio
                        ABM = CType(Activator.CreateInstance(Type.GetType(Replace(Application.ProductName, " ", "_") & "." & Strings.Left(Replace(Me.Name, "xtf_LISTADO", "xtf_ABM"), Replace(Me.Name, "xtf_LISTADO", "xtf_ABM").Length - 1), True, True)), Form)
                        ABM.Modificar(barrio, Me, gdv_general.GetDataRow(gdv_general.GetSelectedRows(0)))
                        ABM.ControlarModificaciones(ABM.lac_general.items)
                        bsi_estado.Caption = "Listo"
                    End If
                End If

            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End If
    End Sub

    Public Overrides Sub bbi_Eliminar_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs)
        If ComprobarPermiso(PERMISOEliminar) Then
            Try
                If gdv_general.SelectedRowsCount > 0 Then
                    If ErrManagerShow("000005", Me) = DialogResult.Yes Then
                        Dim eliminarRegistro As Boolean = False
                        If UsuarioLOG.esroot Then
                            If ErrManagerShow("001023", Me) = DialogResult.Yes Then
                                eliminarRegistro = True
                            End If
                        End If


                        Dim objeto As New cls_documento_


                        If eliminarRegistro Then
                            objeto.Eliminar(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)"))
                        Else
                            objeto.Buscar(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0))("Identificador (ID)"))
                            objeto.registro.idregistroestado = 2
                            objeto.Modificar()
                            If Not IsNothing(objeto.asiento) Then
                                objeto.asiento.registro.idregistroestado = 2
                                objeto.asiento.Modificar()
                            End If
                        End If

                        dtt_DataTable.Rows.Remove(gdv_general.GetDataRow(gdv_general.GetSelectedRows(0)))
                    End If
                End If
            Catch ex As Exception
                'Dim frmError As New frm_ErrorManager(ex.Message)
            End Try
        End If

    End Sub
End Class